<?php namespace Home\Controller;
use Hdphp\Controller\Controller;
//购物车控制器
class CartController extends Controller{
	protected $model;
	public function __construct(){
		parent::__construct();
		$this->model = new \Home\Model\Payment;
	}
	public function index(){
		//框架里面购物车中商品数据的方法
		$goodsData = Cart::getGoods();
//		sp($goodsData);
		View::with('goodsData',$goodsData);
		
		
		//这里商品的总数量就相当于商品的总价格，和商城不同所以用到$data['total_rows']
		$data = Cart::getAllData();
//		sp($data);
		View::with('data',$data);

		
		//框架里面的获得购物车总价的方法
		$goodsTotalPrice = Cart::getTotalPrice();
//		sp($goodsTotalPrice);
		View::with('goodsTotalPrice',$goodsTotalPrice);
		
		//获得已经登录用户的数据
		$userData = Db::table('user')->where("userid={$_SESSION['userid']}")->get();
		//sp($userData);
		View::with('userData',$userData);
	    View::make();
	}
	
	//添加购物车
	public function cartData(){
		//这里的字段名要和框架里的一样
	    $cartData = array(
			'id' => Q('post.gid'),
			'price' => Q('post.price'),
			'name' => Q('post.gname'),
			'num' => Q('post.num'),
			'pic' => Q('post.pic')
		);
//		sp($cartData);
		Cart::add($cartData);
//		sp($_SESSION);
		$goodsNum = count(Cart::getGoods());
//		sp($goodsNum);
		echo json_encode($goodsNum);
	}
	
	//删除
	public function del(){
		$num = Q('post.num');
		//sp($num);
		//unset 删除变量。
		unset($_SESSION['cart']['goods'][$num]);
		//框架里面购物车中商品数据的方法
		$goodsData = Cart::getGoods();
		//当购物车没东西的时候$goodsData在页面显示未定义。只有取反if体才能执行。
		if(!$goodsData){
			echo json_encode(1);
		}
	}
	
	//购车单条商品价格变化************商城才会这样写。购物车的总价。
//	public function goodsPrice(){
//		//接收商品的总价
//		$priceTotal = Q('post.priceTotal');
//		//接收商品自动生成的名字
//		$k = Q('post.k');
////		sp($k);
//		//接收商品的索引值
//	    $num = Q('post.num');
//		//		sp($num);
//		//更新购物车需要传入商品的唯一 SID，同时传入更新的商品数量，
//		//这是框架里面的方法
//		$data = array(
//			'sid'=>$k,
//			'num'=>$num,
//		);
//		Cart::update($data);
//		
//		//购物车单条商品的价格
//		$price_one = $_SESSION['cart']['goods'][$k]['total'];
//		//sp($goods_one);
//		//购物车总价
//		$price_all = Cart::getTotalPrice();
//		//把价格重组一个数组返回去(又学到的新东西，总成数组返回json数据**********)
//		$price = array(
//			'price_one' => $price_one,
//			'price_all' => $price_all
//		);
//		//sp($price);
//		
//		echo json_encode($price);
//	}
	
	//这个网站是一元购，所以商品价格只用到添加购物车时的参与人次就可以
	public function num(){
		//接收商品自动生成的名字
		$k = Q('post.k');
		//接收商品的参与人次
		$num = Q('post.num');
		//更新购物车需要传入商品的唯一 SID，同时传入更新的商品数量，
		//这是框架里面的方法
		$data = array(
			'sid'=>$k,
			'num'=>$num
		);
		Cart::update($data);
		
		//购物车单条商品的价格
		$price_one = $_SESSION['cart']['goods'][$k]['num'];
		//商品总价就相当于商品的总数量
		$data = Cart::getAllData();
		$price_all = $data['total_rows'];
		
		//把价格重组一个数组返回去(又学到的新东西，总成数组返回json数据**********)
		$price = array(
			'price_one' => $price_one,
			'price_all' => $price_all
		);
		echo json_encode($price);
	}
	
	
	//支付
	public function pay(){
		$data = Cart::getAllData();
		
	   	//点击支付的时候用账户余额减去总商品价格
	   	$userData = Db::table('user')->where("userid={$_SESSION['userid']}")->get();
		//用户总余额
		$sum = $userData[0]['sum'];
		//商品总价就相当于商品的总数量
		
		$price_all = $data['total_rows'];
		
		//支付后用户账户余额改变
		$sum = $sum - $price_all;
		//sp($sum);
		//并且修改账户余额
		Db::table('user')->where("userid={$_SESSION['userid']}")->update(array('sum'=>$sum));
		
		//
		$this->model->addData($data);
//		SP($goodsData);
		echo json_encode($price_all);
		
		//支付之后清除购物车
//		unset($_SESSION['cart']['goods']);
		
	}
	

}


 ?>